package fr.umlv.m2.uwp2011.persistence.user.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import fr.umlv.m2.uwp2011.persistence.matiere.Matiere;
import fr.umlv.m2.uwp2011.persistence.matiere.dao.HibernateMatiereDAO;
import fr.umlv.m2.uwp2011.persistence.user.IUser_MatiereDAO;
import fr.umlv.m2.uwp2011.persistence.user.User_Matiere;

public class HibernateUser_MatiereDAO  implements IUser_MatiereDAO {
	private final static HibernateMatiereDAO matiereDAO = new HibernateMatiereDAO();
	private static final Map<Long, List<User_Matiere>> mapMatiereUser = new HashMap<Long, List<User_Matiere>>();
	static {
		Long matiere_id;
		List<User_Matiere> list;
		User_Matiere userMatiere;
		Matiere matiere;
		
		//----- matiere with id 1 -------//
		matiere_id = 1L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(1L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud1");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud2");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof1");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
		
		//----- matiere with id 2 -------//
		matiere_id = 2L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(2L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud1");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof1");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
		
		//----- matiere with id 3 -------//
		matiere_id = 3L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(3L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud2");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof1");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
		
		//----- matiere with id 4 -------//
		matiere_id = 4L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(4L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud2");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof2");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
		
		//----- matiere with id 5 -------//
		matiere_id = 5L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(5L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud3");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud4");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof1");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
		
		//----- matiere with id 6 -------//
		matiere_id = 6L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(6L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud5");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud6");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof3");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
		
		//----- matiere with id 7 -------//
		matiere_id = 7L;
		list = new ArrayList<User_Matiere>();
		matiere = matiereDAO.findById(7L);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud6");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud4");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("etud7");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof3");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof4");
		list.add(userMatiere);
		userMatiere = new User_Matiere();
		userMatiere.setMatiere(matiere);
		userMatiere.setUser_id("prof1");
		list.add(userMatiere);
		mapMatiereUser.put(matiere_id, list);
	}

	@Override
	public List<User_Matiere> findUser_MatiereByMatiereID(Long matiere_id) {
		return mapMatiereUser.get(matiere_id);
	}
}